Skip to main content

Exemple de déclencheur 2 : Processus de collage

Le Robotics_Trigger_Advanced.project l'exemple de projet décrit ici se trouve dans le répertoire d'installation de CODESYS sous..\CODESYS SoftMotion\Examples.

Les déclencheurs peuvent être utilisés pour effectuer des actions à des positions spécifiques sur le chemin, telles que l'activation et la désactivation d'une buse de collage.

Cet exemple inclut les composants suivants :

  • La configuration d'une prévision garantie de la trajectoire par le fPlanningForecastDuration paramètre de la SMC_TuneCPKernel bloc fonctionnel.

  • La commande de différents déclencheurs. Ici, les trois méthodes disponibles pour définir la position de la trajectoire sont utilisées (voir SMC_TriggerPositionType).

  • L'utilisation de déclencheurs avec décalage temporel. L'exemple d'application contient les TriggerWithTimeShift bloc fonctionnel qui peut réagir à l'atteinte de la position de trajectoire avec un décalage temporel (plus tôt et plus tard).

Ces composants sont illustrés dans un exemple d'application pour un processus de collage. Le mouvement affiché en rouge dans l'image suivante est exécuté (avec fondu).

_sm_img_digital_switches_example.png

Des déclencheurs ont été définis aux positions marquées en vert :

  • Position 1 : Allumer l'encolleuse 0,05 s avant d'atteindre la position.

  • Position 1 : Allumer la lampe UV lorsque la position est atteinte.

  • Position 2 : Remplissez le réservoir de colle lorsque la position est atteinte.

  • Position 3 : Éteindre l'encolleuse et arrêter de remplir le réservoir de colle 0,05 s avant d'atteindre la position.

  • Position 3 : éteindre la lampe UV 1,5 s après avoir atteint la position

Structure de la demande

L'application se compose des parties suivantes.

  • GlueApplication: Ce programme contient l'exemple d'application qui montre comment utiliser des déclencheurs pour un processus de collage.

  • Planning_PRG: Dans ce programme, une prévision de la trajectoire est configurée.

  • TriggerWithTimeShift: Ce bloc fonction contient la logique des triggers avec décalage temporel et est utilisé dans le GlueApplication exemple de programme.

  • Trace: La trace montre la dynamique des axes ainsi que les sorties du GlueApplication programme qui sont commutés par les déclencheurs.

Configuration d'une prévision

Si vous voulez réagir tôt avant qu'un déclencheur ne soit atteint, par exemple 0,05 s avant, alors le fPlanningForecastDuration paramètre du SMC_SMC_TuneCPKernel bloc fonctionnel doit être réglé sur au moins 0,05 s. Comme le paramètre a un impact direct sur la latence, sa valeur ne doit pas être plus grande que nécessaire (voir la documentation de fPlanificationPrévisionDurée). Noter que SMC_TuneCPKernel doit être appelé dans le SoftMotion tâche de planification. Pour cette raison, la configuration n'est pas exécutée dans le programme principal GlueApplication, mais dans le Planning_PRG programme.

Dans cet exemple d'application, l'évaluation du déclencheur est requise au plus tôt 0,05 s avant qu'une position ne soit atteinte. Pour cette raison, le paramètrefPlanningForecastDuration=0,05 est défini dans le Planning_PRG programme.

Bloc fonction : TriggerWithTimeShift

Le TriggerWithTimeShift Le bloc fonctionnel fournit une interface simplifiée pour l'utilisation des déclencheurs. De plus, un décalage temporel peut être défini afin que le déclencheur puisse réagir avant qu'une position (valeur positive) ainsi qu'après qu'une position (valeur négative) ne soit atteinte. En fonction de la précision temporelle requise dans une application, la réaction à l'atteinte d'un déclencheur peut être la suivante :

  • Précision de temps requise >= cycle de tâche de bus : Dans ce cas, la TriggerWithTimeShift.TriggerReachedThisCycle sortie peut être utilisée.

  • Précision de temps requise < cycle de tâche de bus : dans ce cas, le temps restant exact TriggerWithTimeShift.TriggerTime jusqu'à ce que le déclencheur soit atteint peut être utilisé.

Intérieurement, TriggerWithTimeShift utilise le SMC_GroupPrepareTrigger et SMC_GroupReadTrigger blocs fonctionnels.

Commander des déclencheurs

Dans le GlueApplication programme, les mouvements et les déclenchements sont commandés. L'ordre d'appel est particulièrement important pour les déclencheurs car les déclencheurs préparés à l'aide SMC_GroupPrepareTrigger sont affectés au prochain mouvement commandé dans le même cycle. Par conséquent, dans chaque application, vous devez faire attention aux points suivants :

  1. Les blocs fonctionnels de commande des déclencheurs sont toujours appelés avant les blocs fonctionnels de mouvement.

  2. Les déclencheurs et le mouvement respectif sont toujours commandés dans le même cycle.

Les déclencheurs utilisent tous les types de SMC_TriggerPositionType:

  • Les déclencheurs à la position 1 utilisent la définition d'une distance relative (SMC_TriggerPositionType.MvtRelative) et comme Position 0.5. Étant donné que le mouvement respectif a une distance de 10, les déclencheurs sont situés à X=5.

  • Le déclencheur à la position 2 utilise la définition d'une distance en unités utilisateur u (SMC_TriggerPositionType.MvtDistance) et en position 5. Par conséquent, le déclencheur est également situé à X=5.

  • Les déclencheurs en Position 3 utilisent l'intersection avec un plan (SMC_TriggerPositionType.PlaneIntersection). Le plan a été défini pour que les déclencheurs soient situés en X=5.

GlueApplication a la EnableGlue, EnableUVLamp, et RefillGlueStorage les sorties. Ceux-ci sont commutés aux déclencheurs appropriés dans GlueApplication.EvaluateTriggers(). Le mouvement et l'état de ces sorties peuvent être surveillés et évalués dans la trace.